
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<html>
    <head>
        <meta charset="utf-8">
        <script src="./lib/esl.js"></script>
        <script src="./lib/config.js"></script>
    </head>
    <body>
        <style>
            html,
            body,
            #main,
            #main2,
            #main3 {
                width: 90%;
                height: 200px;
                margin: 0;
                padding: 0;
            }
            #main2 {
                width: 75%;
            }
            #main3 {
                width: 50%;
            }
            #middle {
                text-align: center;
                padding: 10px;
                background: #d4e8f1;
            }
        </style>
        <div id="main"></div>
        <div id="middle">
            上面是降水量，下面是流量。这是三个echarts实例。<br>
            三个都会 dataZoom 同步。<br>
            前两个会 tooltip 同步，第三个不 tooltip 同步。
        </div>
        <div id="main2"></div>
        <div id="main3"></div>

        <script>

            require([
                'data/rainfall.json',
                'echarts'
                // 'echarts/chart/bar',
                // 'echarts/chart/line',
                // 'echarts/component/legend',
                // 'echarts/component/tooltip',
                // 'echarts/component/grid',
                // 'echarts/component/axis',
                // 'echarts/component/toolbox',
                // 'echarts/component/dataZoomInside'
            ], function (data, echarts) {
                var chart1 = createChart1(data, echarts);
                var chart2 = createChart2(data, echarts);
                var chart3 = createChart3(data, echarts);

                echarts.connect([chart1, chart2, chart3]);

                // chart1.on('dataZoom', function (payload) {
                //     chart2.dispatchAction({
                //         type: 'dataZoom',
                //         dataZoomIndex: 0,
                //         range: payload.range
                //     }, true);
                // });

                // chart2.on('dataZoom', function (payload) {
                //     chart1.dispatchAction({
                //         type: 'dataZoom',
                //         dataZoomIndex: 0,
                //         range: payload.range
                //     }, true);
                // });

            });


            function createChart1(data, echarts) {

                var chart = echarts.init(document.getElementById('main'), null, {

                });

                chart.setOption({
                    tooltip: {
                        trigger: 'axis',
                    },
                    legend: {
                        data: ['降水量']
                    },
                    grid: [
                        {
                            show: true,
                            borderWidth: 0,
                            left: 0,
                            right: 0,
                            top: 0,
                            bottom: 0
                        }
                    ],
                    toolbox: {
                        feature: {
                            saveAsImage: {}
                        }
                    },
                    xAxis: [
                        {
                            // data: ['类目1', '类目2', '类目3', '类目4', '类目5',]
                            // data: xAxisData,
                            type: 'category',
                            boundaryGap: true,
                            // splitLine: {show: false},
                            axisLabel: {show: true},
                            splitLine: {show: false},
                            axisLine: {
                                show: true,
                                // onZero: false
                            },
                            data: data.category
                        }
                    ],
                    yAxis: [
                        {
                            boundaryGap: false,
                            axisLabel: {
                            },
                            axisLine: {
                                lineStyle: {
                                    color: '#666'
                                }
                            }
                        }
                    ],
                    series: [
                        {
                            name: '降水量',
                            type: 'line',
                            data: data.rainfall,
                            itemStyle: {
                                normal: {
                                     areaStyle: {}
                                }
                            }
                        }
                    ],
                    dataZoom: [
                        {
                            type: 'inside',
                            start: 30,
                            end: 40
                        }
                    ]
                });

                return chart;
            }


            function createChart2(data, echarts) {

                var chart = echarts.init(document.getElementById('main2'), null, {

                });

                chart.setOption({
                    tooltip: {
                        trigger: 'axis',
                    },
                    legend: {
                        data: ['流量']
                    },
                    grid: [
                        {
                            show: true,
                            borderWidth: 0,
                            left: 0,
                            right: 0,
                            top: 0,
                            bottom: 0
                        }
                    ],
                    xAxis: [
                        {
                            type: 'category',
                            boundaryGap: true,
                            axisLabel: {show: true},
                            splitLine: {show: false},
                            axisLine: {
                                show: true,
                            },
                            data: data.category
                        }
                    ],
                    yAxis: [
                        {
                            boundaryGap: false,
                            position: 'right',
                            inverse: true,
                            axisLabel: {
                                textStyle: {
                                    color: '#666'
                                }
                            },
                            axisLine: {
                                lineStyle: {
                                    color: '#666'
                                }
                            }
                        }
                    ],
                    series: [
                        {
                            name: '流量',
                            type: 'line',
                            data: data.flow,
                            itemStyle: {
                                normal: {
                                     areaStyle: {}
                                }
                            }
                        }
                    ],
                    dataZoom: [
                        {
                            type: 'inside',
                            start: 30,
                            end: 40
                        }
                    ]
                });
                return chart;
            }

            function createChart3(data, echarts) {

                var chart = echarts.init(document.getElementById('main3'), null, {

                });

                chart.setOption({
                    tooltip: {
                        trigger: 'axis',
                    },
                    legend: {
                        data: ['流量']
                    },
                    grid: [
                        {
                            show: true,
                            borderWidth: 0,
                            left: 0,
                            right: 0,
                            top: 0,
                            bottom: 0
                        }
                    ],
                    xAxis: [
                        {
                            type: 'category',
                            boundaryGap: true,
                            axisLabel: {show: true},
                            splitLine: {show: false},
                            axisLine: {
                                show: true,
                            },
                            data: data.category
                        }
                    ],
                    yAxis: [
                        {
                            boundaryGap: false,
                            position: 'right',
                            inverse: true,
                            axisLabel: {
                                textStyle: {
                                    color: '#666'
                                }
                            },
                            axisLine: {
                                lineStyle: {
                                    color: '#666'
                                }
                            }
                        }
                    ],
                    series: [
                        {
                            name: 'NaN',
                            type: 'line',
                            data: data.flow.map(function () { return null; })
                        },
                        {
                            name: '流量',
                            type: 'line',
                            data: data.flow,
                            itemStyle: {
                                normal: {
                                     areaStyle: {}
                                }
                            }
                        }
                    ],
                    dataZoom: [
                        {
                            type: 'inside',
                            start: 30,
                            end: 40
                        }
                    ]
                });

                return chart;
            }

        </script>
    </body>
</html>